package com.ruoyi.hyg.service.impl;

import java.util.List;
import com.ruoyi.common.utils.DateUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.hyg.mapper.DailyCheckInMapper;
import com.ruoyi.hyg.domain.DailyCheckIn;
import com.ruoyi.hyg.service.IDailyCheckInService;

/**
 * 每日打卡Service业务层处理
 * 
 * @author ruoyi
 * @date 2025-08-13
 */
@Service
public class DailyCheckInServiceImpl implements IDailyCheckInService 
{
    @Autowired
    private DailyCheckInMapper dailyCheckInMapper;

    /**
     * 查询每日打卡
     * 
     * @param id 每日打卡主键
     * @return 每日打卡
     */
    @Override
    public DailyCheckIn selectDailyCheckInById(Long id)
    {
        return dailyCheckInMapper.selectDailyCheckInById(id);
    }

    /**
     * 查询每日打卡列表
     * 
     * @param dailyCheckIn 每日打卡
     * @return 每日打卡
     */
    @Override
    public List<DailyCheckIn> selectDailyCheckInList(DailyCheckIn dailyCheckIn) {
        return dailyCheckInMapper.selectDailyCheckInList(dailyCheckIn);
    }

    /**
     * 新增每日打卡
     * 
     * @param dailyCheckIn 每日打卡
     * @return 结果
     */
    @Override
    public int insertDailyCheckIn(DailyCheckIn dailyCheckIn) {
        dailyCheckIn.setCreateTime(DateUtils.getNowDate());
        dailyCheckInMapper.insertDailyCheckIn(dailyCheckIn);
        // 重新查询完整数据
        DailyCheckIn fullData = dailyCheckInMapper.selectDailyCheckInById(dailyCheckIn.getId());
        // 将完整数据拷贝到原对象
        BeanUtils.copyProperties(fullData, dailyCheckIn);
        return 1;
    }

    /**
     * 修改每日打卡
     * 
     * @param dailyCheckIn 每日打卡
     * @return 结果
     */
    @Override
    public int updateDailyCheckIn(DailyCheckIn dailyCheckIn)
    {
        return dailyCheckInMapper.updateDailyCheckIn(dailyCheckIn);
    }

    /**
     * 批量删除每日打卡
     * 
     * @param ids 需要删除的每日打卡主键
     * @return 结果
     */
    @Override
    public int deleteDailyCheckInByIds(Long[] ids) {
        return dailyCheckInMapper.deleteDailyCheckInByIds(ids); // 实际执行的是逻辑删除
    }

    /**
     * 删除每日打卡信息
     * 
     * @param id 每日打卡主键
     * @return 结果
     */
    @Override
    public int deleteDailyCheckInById(Long id) {
        return dailyCheckInMapper.deleteDailyCheckInById(id); // 实际执行的是逻辑删除
    }
    
}
